Skip to content

Conversation

@Pray4Love1
Copy link

Describe your changes and provide context

Testing performed to validate your change

Pray4Lovee and others added 30 commits August 7, 2025 23:52
…ting

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…tegration-tests

Add conditional Slinky integration test
Potential fix for code scanning alert no. 422: Potentially unsafe quoting
Pray4Lovee and others added 21 commits September 12, 2025 10:42
…d-circlecciprouter-contracts-0x9h4c

Add Keeper workflow and guard SeiKin settlement flows
…y-seikinsettlement-and-circlecciprouter-contracts
…d-circlecciprouter-contracts

Add SeiKin settlement and Circle CCIP router contracts
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Comment on lines 23 to 27
// GetSigners returns the message signers.
func (m *MsgCommitCovenant) GetSigners() []sdk.AccAddress {
addr, err := sdk.AccAddressFromBech32(m.Creator)
if err != nil {
return []sdk.AccAddress{}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P0] Covenant commits can run with zero signatures

GetSigners returns an empty slice whenever Creator fails Bech32 parsing, and ValidateBasic later returns nil. A transaction can set an invalid creator, include no signatures, and still invoke SeiNetCommitCovenantSync, allowing anyone to commit a covenant or trigger royalty enforcement. The message should reject invalid addresses in ValidateBasic so that at least one signer is required.

Useful? React with 👍 / 👎.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex fix issue

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 55 to 59
// GetSigners returns the message signers.
func (m *MsgUnlockHardwareKey) GetSigners() []sdk.AccAddress {
addr, err := sdk.AccAddressFromBech32(m.Creator)
if err != nil {
return []sdk.AccAddress{}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P0] Hardware key unlock message skips authentication

Like MsgCommitCovenant, MsgUnlockHardwareKey silently returns no signers when the creator address is malformed and ValidateBasic performs no checks. An attacker can submit a transaction with a bogus creator and zero signatures to mark any key as unlocked. Ensure ValidateBasic validates the creator field (or return an error in GetSigners) so the message cannot execute without a valid signer.

Useful? React with 👍 / 👎.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex fix issue

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 82 to 83
// RegisterMsgServer is a no-op placeholder to satisfy interface in Configurator.
func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) {}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Seinet message server never registered

RegisterMsgServer is an empty stub, yet AppModule.RegisterServices calls it to expose the module’s handlers. Because the registrar is never invoked, MsgCommitCovenant/MsgUnlockHardwareKey will be rejected with unknown service seinet.Msg and the module cannot be used over gRPC or standard transactions. Implement real registration (as other modules do) or remove the call.

Useful? React with 👍 / 👎.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex fix issue

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@github-actions
Copy link

We truly appreciate your contribution and the time you’ve invested in this PR.
Before we can merge it, we’d love your help addressing the remaining feedback or sharing your perspective.
If we don’t hear back within 2 day(s), this PR will close automatically — but don’t worry, you can reopen it anytime when you’re ready to continue.

Refactor MsgCommitCovenant and MsgUnlockHardwareKey to include basic validation for creator addresses and remove unused methods.
Updated workflow names and added Guardian Royalty Settlement job.
Copy link
Author

@Pray4Love1 Pray4Love1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants